perm filename NSF.US[DOC,TOB] blob
sn#006777 filedate 1972-11-01 generic text, type T, neo UTF8
00100
00200 ADVANCED AUTOMATION DEVELOPMENT
00300
00400 The SAIL proposes to undertake a project of development and
00500 application in advanced automation. The project includes a pilot
00600 assembly station carrying out practical assembly tasks, a
00700 hardware-software system ready for production and fundamental work on
00800 the underlying problems of vision, manipulation and problem-solving.
00900 We believe the laboratory is uniquely qualified to carry out this
01000 program which will be an important contribution to increasing
01100 industrial productivity.
01200
01300 Our basic approach involves a general purpose system integrating
01400 sensors and manipulators controlled by sophisticated programs in a
01500 digital computer. We have worked with such systems since 1965 and
01600 have developed many of the basic ideas required in general purpose
01700 assembly devices. The main thrust of this proposal is to establish
01800 the practicality of our methods and carry their development to a
01900 point from which industry can take over.
02000
02100 The body of this proposal is divided into four main sections: Pilot
02200 assembly station, vision, manipulation development, and systems
02300 support. Each section contains a brief description of the
02400 laboratory's past work in the area, how it is to be applied, and what
02500 extensions are to be undertaken. Finally, we consider a number of
02600 important issues concerning our relations with industry and withother
02700 reseach and development efforts in advanced automation.
00100 The existing arm, designed and built by V. Scheinman, has been operational
00200 since 1971; it is controlled by a software servo control system developed by
00300 R. Paul and is now in heavy use. A second arm of the same type, with only
00400 minor modifications, is currently being interfaced to the computer. Both
00500 arms will share a common work space and will be available individually, or
00600 together for two handed tasks.
00700 A stronger version of the original parallel jaw hand,
00800 and a new hand with independently driven fingers, and an extendable
00900 forearm have been made.
01000
01100 Control of the arms is by a series of high level instructions; these
01200 instructions may be executed directly, or may be assembled together
01300 into an arm program. Arm programs may then be executed, as desired, by the
01400 control program.
01500 The control instructions may be accessed directly by other programs, using
01600 the message procedure mechanism, or in the form of symbolic source file.
01700
01800 Each joint of the arm is calibrated in terms of torque v. drive level
01900 and by making use of the kinematic model of the arm it is possible to
02000 predict the joint drive levels to produce a given reaction force and torque
02100 at the hand.
02200 For the hand to exhibit degrees of freedom in given directions and about
02300 given axes, various joints are selected to be "free", that is to have
02400 no feedback applied to them.
02500 By exerting a reaction force at the hand and providing that certain degrees
02600 of freedom exist it is possible to perform a much wider class of tasks
02700 than simple positional control, for instance screwing in screws, mating parts,
02800 inserting tools and turning cranks.
02900
03000 Touch sensors on the fingers allow the hand to sense objects without disturbing
03100 them. If activated the arm will stop when any of the sensors touch.
03200 Branching arm instructions can test the state of the sensors and modify
03300 the execution of an arm program.
03400 When screwing a nut onto a bolt, for instance, the hand is first centered over the bolt
03500 by touching it.
03600
03700 Some use of hand tools has occured with the assembly work to date.
03800 A power socket driver has been made suitable for the hand. It is expected
03900 that increasing ability to ues tools will be developed.
04000
00100 Most tasks can be described in terms of a series of actions which will need
00200 to be modified in order to interact with the real world. For example in order
00300 to pick up a part and place it on a conveyor a series of actions can be planned:
00400 move the hand to the location of the part, close the hand, move to the conveyor,
00500 place the part on the conveyor, open the hand and move it away. If the
00600 part was always located exactly and the conveyor remained precisely in position
00700 then the existing program would suffice.
00800 In order to adjust to the possible displacement of parts and conveyor
00900 the action will in practice need to be modified, by vision, touch or force.
01000 In terms of arm control each task is planned to provide an arm program
01100 executable in real time. At specific points at which its execution must
01200 be modified either branching type instructions will allow touch interaction,
01300 or a "wait" state will be planned. Execution can be resumed on receipt of an
01400 interrupt, as from a photo-cell device indicating the arrival of a part,
01500 or upon completion of a visual analysis. When in a "wait" state any number
01600 of arm instructions can be executed without affecting the ability to resume
01700 execution of the arm program. It is in this way that vision programs
01800 interact with the arm, modifying the hand position and orientation in order
01900 to perform some sub-task before resuming execution.
02000
02100 This basic approach is reflected in the programming structure. A high level
02200 time sharing program plans tasks and initiates execution. Execution is
02300 by means of a small computer directly related to each arm and vision input
02400 device. This small control computer servoes the arm and performs low level
02500 vision analysis. If a high level analysis is necessary or something unexpected
02600 happens then the time sharing computer performs the analysis and modifies
02700 the state of the hand while it is a "wait" state, before execution is resumed.
02800 Thus a series of small control computers controlling one or two arms and
02900 vision input devices, are in turn managed by a large central time sharing
03000 computer capable of planning tasks, performing high level vision analysis,
03100 calibration and control.
03200
00100 SYSTEM REQUIREMENTS FOR ADVANCED AUTOMATION
00200
00300 A key element in the development of any large programming effort is
00400 the software support. There has been continual effort along these
00500 lines at the S.A.I.L. and many useful ideas have been developed. We
00600 propose to extend the research along two separate lines: support for
00700 research and system software for operating automated systems. We
00800 will briefly describe our post efforts and in this area and what we
00900 propose to undertake.
01000
01100 The S.A.I.L. has pioneered in several areas of system programming,
01200 including timesharing systems, interactive graphics, and programming
01300 languages.
01400
01500 A great deal of additional effort has gone into direct support of
01600 hand-eye research. Very early, we established a set of standard
01700 formats and library routines; this has facilitated the cumulative
01800 effect needed for progress in an area as difficult as this one. A
01900 programming language S.A.I.L., was implemented in 1968. The language
02000 incorporates special features for large real-world-oriented problem
02100 solving systems and is currently in use at a number of Artificial
02200 Intelligence and other laboratories.
02300
02400 As we began to assemble larger and more sophisticated collections of
02500 programs, we felt a need for flexible mechanisms for cooperating
02600 sequential processes. The resulting monitor and language features [
02700 , ] have worked well for us and have been influential on other
02800 projects planning. Recently, we have added an additional set of
02900 features to SAIL to facilitate non-deterministic and event-directed
03000 programming. The early reactions to this work, both within the
03100 laboratory and without has been very encouraging.
03200
03300 We expect relatively little work to be needed on further systems
03400 support for basic research. There will undoubtedly be efforts to
03500 take advantage of new hardware and of new programming ideas that may
03600 develop in the course of this program. Almost all of this work
03700 should be covered by other funding.
03800
03900 The development of software for the assembly station will require
04000 more of our effort. The octapus configuration requires code to be
04100 resident in the local computer and in the shared machine. The low
04200 level programs in the local machine will not be modified often, thus
04300 we can assume that a PDP-l0 resident compile will suffice. The
04400 planning programs and general vision programs will be resident in the
04500 shared system. There are two possible configurations for the shared
04600 computer system: A PDP-10 equivalent machine or a software package
04700 in ASA Standard Fortran IV which will run on any sufficiently large
04800 machine. One of the tasks under this proposal would be to evaluate
04900 these two alternatives.
05000
00100 We assume that present manipulators have a small market but stable, and
00200 that most will have minicomputers soon (Sundstrand does now). Will
00300 the incremental cost of touch, force and visual sensors be offset
00400 by the opening of new capabilities, and will the cost be offset by
00500 reduced cost of system design for machines which allow loose alignment
00600 tolerances? We estimate in a separate paragraph hardware costs, and
00700 estimate that by 1977, the incremental cost of visual sensors will
00800 be $1100, or $1400 with a laser ranging scheme as we use now. That
00900 will add $2k to $3k to the selling price, or about 10% of current
01000 manipulator prices. Presumably labor costs will inflate by double
01100 that figure, so that cost comparisons will not change appreciably
01200 over that time scale unless significant new mechanical designs are
01300 made. A conclusion is that sensor-equipped robots will be available
01400 at slight additional cost. We do not expect mechanical production
01500 costs to drop dramatically as electronics costs fall with integration.
01600 The most promising cost reduction development would be high-production
01700 standard modules such as robots. At some stage we expect that design
01800 will be cheaper with standard robot modules than with special purpose
01900 designs, just as it is now more economical to use mini-computer
02000 controllers than special purpose controllers. To some extent, the
02100 dehumanized industrial worker fills that role now, so that we do not
02200 expect discontinuous change. An inhibiting factor will be that large
02300 companies who can automate first, have large enough volume to afford
02400 large special design costs. That suggests a need for governmental
02500 support which will aid medium scale industry to get over the hump.
02600 But given sensor-equipped robots at little extra cost, they will
02700 have visual ability to sense color, strong contrasts in brightness,
02800 recognize known objects from two dimensional outlines (top view of
02900 flat object) or three dimensionally using depth, to a certain extent
03000 they will be able to recognize three dimensional objects using
03100 monocular recognition. They will be able to visually align mating
03200 parts in assembly operations, increase reliability by self-calibration
03300 and flaw and disaster detection, and permit large tolerances in
03400 parts transfer, even permitting parts to be taken from a bin. Several
03500 of these abilities are not yet available in the laboratory, but with
03600 known conditions and objects, and some engineering (color coding) are
03700 easily with that time span.
03800
03900 To bring about a transfer of technology from the laboratory to pilot
04000 production, several concurrent phases are necessary:
04100 systematize hardware (cost conscious)
04200 Scheinman arm
04300 sensor study
04400 standard interface and pan/tilt for visual devices
04500 adopt commercial visual hardware
04600 systematize software and interaction
04700 hand/eye system
04800 drawing program
04900 experience with low/cost graphics
05000 ease of problem specification
05100 visual representation
05200 geometric editor
05300 visual input
05400 perceptual strategies
05500 standardize economical computer configuration
05600 alternative is de facto standards at lower level
05700 powerful force for guiding manufacturers of minis
05800 provide powerful modules to broaden engineering choices
05900 design inherent reliability.
06000 continuous self-calibration
06100 disaster detection and contingency planning
06200 wide latitude in tolerances
06300 low incremental cost in quality control
06400 continuous monitoring of function and product quality
06500
06600 Our past work has included many of the functions which relate to those
06700 considerations. We have made color region finders [Binford, Bajcsy],
06800 texture analysis programs [Bajcsy], representation of complex objects
06900 [Binford], laser depth ranging devices [Binford, Agin], description
07000 of complex objects using depth information [Agin], visual feedback
07100 systems for stacking, picking up and inserting [Gill, Davis], standardized
07200 software systems [hand/eye system Feldman, Sproull, Pingle], performed
07300 sensor studies [Binford, Earnest], and maintained calibrated systems
07400 [Sobel, Gill].
00100 It might seem at first that our work on the representation of complex
00200 shapes might have little relevance to the transfer of technology to
00300 industry, since earliest applications might use the simplest facilities.
00400 In fact, one of the earliest needs will be for convenient man/machine
00500 communication. Present non-intelligent robots are programmed by leading
00600 them through a path which is to be repeated ad nauseum. An incremental
00700 addition will allow contingency trajectories to be executed in case of
00800 small variations from routine. The engineer must then specify what
00900 normal function is, and how to monitor it, how to recognize recoverable
01000 situations. To do so, he can specify this symbolically in interaction
01100 with an input program. The language in which he specifies these
01200 normal/abnormal descriptions involves the shape of objects for assembly,
01300 the mating of parts, and schematic descriptions of operations for insertion.
01400 The significance of our representation of shape is that it provides a
01500 natural way of speaking about shape, in terms of part/whole with
01600 primitives which resemble many fabrication operations. It also provides
01700 considerable intuition for the program as to the intent of the operation,
01800 since it has powerful representation of shape, and an elaboration of
01900 form=function heuristics. One function of a flat surface is to support
02000 objects (a table is a flat surface at a given height); the function of
02100 a room is to be a box, ie to enclose space.
02200
02300 Another use of the representation of shape in interaction is for output
02400 of the machine's concepts to the user. Computer display is a vigorous
02500 field now; our representation provides a more efficient representation
02600 for display and could lead to such facilities being available on
02700 small machines. For the machine's perception, this allows greater
02750 use of predictive mechanisms based on internal models.
02800
02900 The representation aids input in that the information can be conveyed
03000 by human interaction or visual input. An adequate description of an
03100 object could be to place it in front of the system (or in front of a
03200 big master system) and let the results be inferred. The representation
03300 is useful for monocular vision also.